Conversation
There was a problem hiding this comment.
🟡 Changes recommended
A few newly added models use auto-properties where the existing SDK model layer uses public fields for JSON members, creating an inconsistent model convention that should be aligned before release.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR prepares the SDK for the 1.0.8 release by adding several missing Mailinator API operations (message summary/headers/text, domain-wide listing, and domain/inbox webhook injection), updating dependencies, and tightening documentation/testing guidance (including reproducible restores via lock files).
Changes:
- Added new
MessagesClientoperations for domain message listing and message content/metadata retrieval, plus webhook injection operations inWebhooksClient, with accompanying request/response models. - Updated dependency versions (e.g., RestSharp/Newtonsoft.Json) and introduced NuGet lock files + repo-wide lockfile restore configuration.
- Expanded docs and examples, and added/updated unit + integration tests (including opt-in webhook injection tests and new message read-only tests).
File summaries
| File | Description |
|---|---|
| TESTING.md | Expanded guidance for unit/integration suites and added focused commands for new message endpoints and webhook tests. |
| ROADMAP.md | Updated dependency audit notes and refreshed OpenAPI gap-analysis snapshot + compatibility decisions. |
| REFERENCE.md | Added new Messages/Webhooks operations and expanded the Obsolete/compatibility section. |
| README.md | Added quick-start references for new message listing/content/headers/summary and webhook injection operations. |
| mailinator-csharp-client/packages.lock.json | Added lock file for SDK project restores. |
| mailinator-csharp-client/Models/Webhooks/Responses/PostWebhookMessageResponse.cs | Introduced response model for webhook injection status/id. |
| mailinator-csharp-client/Models/Webhooks/Requests/PostWebhookMessageRequest.cs | Added request model for domain-level webhook injection and token handling. |
| mailinator-csharp-client/Models/Webhooks/Requests/PostWebhookInboxMessageRequest.cs | Added request model for inbox-scoped webhook injection. |
| mailinator-csharp-client/Models/Webhooks/Entities/WebhookMessage.cs | Added richer webhook payload model (HTML, headers, extension data). |
| mailinator-csharp-client/Models/Messages/Responses/GetMessageTextResponse.cs | Added response wrapper for extracted message text. |
| mailinator-csharp-client/Models/Messages/Responses/GetMessageTextPlainResponse.cs | Added response wrapper for text/plain body content. |
| mailinator-csharp-client/Models/Messages/Responses/GetMessageTextHtmlResponse.cs | Added response wrapper for text/html body content. |
| mailinator-csharp-client/Models/Messages/Responses/GetMessageSummaryResponse.cs | Added response wrapper for message summary metadata. |
| mailinator-csharp-client/Models/Messages/Responses/GetMessageHeadersResponse.cs | Added response wrapper for SMTP headers retrieval. |
| mailinator-csharp-client/Models/Messages/Requests/ListDomainMessagesRequest.cs | Added request model for domain-wide message listing with pagination and filters. |
| mailinator-csharp-client/Models/Messages/Requests/GetMessageTextRequest.cs | Added request model for extracted message text retrieval. |
| mailinator-csharp-client/Models/Messages/Requests/GetMessageTextPlainRequest.cs | Added request model for textplain retrieval. |
| mailinator-csharp-client/Models/Messages/Requests/GetMessageTextHtmlRequest.cs | Added request model for texthtml retrieval. |
| mailinator-csharp-client/Models/Messages/Requests/GetMessageSummaryRequest.cs | Added request model for summary retrieval. |
| mailinator-csharp-client/Models/Messages/Requests/GetMessageHeadersRequest.cs | Added request model for headers retrieval. |
| mailinator-csharp-client/mailinator-csharp-client.csproj | Bumped version to 1.0.8 and updated package references (incl. System.Text.Json). |
| mailinator-csharp-client/Clients/ApiClients/Webhooks/WebhooksClient.cs | Added domain/inbox webhook injection operations (PostWebhook*Async). |
| mailinator-csharp-client/Clients/ApiClients/Messages/MessagesClient.cs | Added new message content/metadata operations + domain listing; forwarded delete on inbox message fetch. |
| mailinator-csharp-client/Clients/ApiClients/Authenticators/AuthenticatorsClient.cs | Marked spec-mismatched list/get operations as [Obsolete] with guidance. |
| mailinator-csharp-client-unit-tests/WebhookMessageTests.cs | Added offline tests validating webhook request construction and payload/response JSON behavior. |
| mailinator-csharp-client-unit-tests/packages.lock.json | Added lock file for unit-test project restores. |
| mailinator-csharp-client-unit-tests/MessageSummaryTests.cs | Added offline tests for summary request construction + JSON shape. |
| mailinator-csharp-client-unit-tests/MessageHeadersTests.cs | Added offline tests for headers request construction + JSON shape. |
| mailinator-csharp-client-unit-tests/MessageContentTests.cs | Added offline tests for message text/plain/html requests + content-preservation deserialization. |
| mailinator-csharp-client-unit-tests/mailinator-csharp-client-unit-tests.csproj | Updated test SDK + MSTest package versions. |
| mailinator-csharp-client-unit-tests/ApiClientRequestTests.cs | Added request-construction coverage for new endpoints and expanded coverage across clients. |
| mailinator-csharp-client-tests/TestEnvironment.cs | Extracted shared .env loading helper for integration tests. |
| mailinator-csharp-client-tests/TestBase.cs | Switched to shared env loader and added MAILINATOR_TEST_MESSAGE_ID fixture support. |
| mailinator-csharp-client-tests/packages.lock.json | Added lock file for integration-test project restores. |
| mailinator-csharp-client-tests/packages.config | Removed legacy packages.config in favor of SDK-style PackageReference. |
| mailinator-csharp-client-tests/MessagesEndpointTests.cs | Added opt-in, read-only integration tests for summary/headers/domain listing; tightened exception assertions. |
| mailinator-csharp-client-tests/MessageContentEndpointTests.cs | Added read-only integration tests for text/plain/html message content endpoints. |
| mailinator-csharp-client-tests/mailinator-csharp-client-tests.csproj | Migrated to SDK-style project with PackageReference and modern MSTest stack. |
| mailinator-csharp-client-tests/DomainWebhookEndpointTests.cs | Added explicit opt-in integration tests for domain/inbox webhook injection. |
| mailinator-csharp-client-tests/app.config | Updated binding redirect for MSTest 4-era dependencies. |
| EXAMPLES.md | Added examples for domain listing, message summary/headers/content, and domain/inbox webhook injection; updated authenticators example. |
| eng/OpenApiCoverageCheck/packages.lock.json | Added lock file for OpenAPI coverage tool restores. |
| eng/OpenApiCoverageCheck/OpenApiCoverageCheck.csproj | Updated Microsoft.OpenApi.Readers dependency version. |
| Directory.Build.props | Enabled RestorePackagesWithLockFile repo-wide. |
| CHANGELOG.md | Added 1.0.8 release notes covering new endpoints, dependency updates, and tests/docs changes. |
| .env.example | Added new fixture variables (message ID, webhook opt-in) for integration tests. |
Review details
Suppressed comments (1)
mailinator-csharp-client/Models/Webhooks/Entities/WebhookMessage.cs:17
WebhookMessage.AdditionalPropertiesis implemented as an auto-property, while the surrounding models typically expose JSON members as public fields. Aligning this with the rest of the SDK’s model style keeps serialization behavior and conventions consistent.
- Files reviewed: 46/46 changed files
- Comments generated: 4
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
ckenst
left a comment
There was a problem hiding this comment.
Two functional/compatibility findings from the 1.0.8 review:
| <PackageReference Include="Newtonsoft.Json" Version="13.0.3" /> | ||
| <PackageReference Include="RestSharp" Version="112.0.0" /> | ||
| <PackageReference Include="Newtonsoft.Json" Version="13.0.4" /> | ||
| <PackageReference Include="RestSharp" Version="114.0.0" /> |
There was a problem hiding this comment.
RestSharp 114 is a breaking dependency upgrade inside a 1.0.8 patch release. RestSharp's v114 changelog explicitly lists breaking API changes, and this SDK publicly exposes RestSharp types through IHttpClient and DynamicJsonSerializer, so consumers can encounter source or binary incompatibilities when updating from 1.0.7. Please either keep RestSharp 112 while pinning the patched System.Text.Json, or make this a new SDK major version with migration guidance. See https://restsharp.dev/docs/changelog/.
| requestObject.AddSafeQueryParameter("inbox", request.Inbox); | ||
| requestObject.AddSafeQueryParameter("skip", request.Skip.ToString()); | ||
| requestObject.AddSafeQueryParameter("limit", request.Limit.ToString()); | ||
| requestObject.AddSafeQueryParameter("sort", request.Sort.ToString()); |
There was a problem hiding this comment.
Sort.ToString() produces asc or desc, while the OpenAPI contract permits ascending or descending (and the enum's EnumMember attributes already encode those values). An explicit ascending request can therefore be rejected or silently fall back to descending. Please serialize the EnumMember value or map it explicitly, update the test that currently asserts asc, and apply the same correction to FetchInboxAsync. Spec: https://github.com/manybrain/mailinatordocs/blob/main/openapi/mailinator-api.yaml#L848-L858.
No description provided.